﻿//
// XN4SL - Xna Framework for Silverlight.
//
namespace Xn4Sl.Framework
{
    /// <summary>
    /// Defines a vector with four components.
    /// </summary>
    public struct Vector4
    {
        /// <summary>
        /// Gets or sets the w-component of the vector.
        /// </summary>
        public float W;

        /// <summary>
        /// Gets or sets the x-component of the vector.
        /// </summary>
        public float X;

        /// <summary>
        /// Gets or sets the y-component of the vector.
        /// </summary>
        public float Y;

        /// <summary>
        /// Gets or sets the z-component of the vector.
        /// </summary>
        public float Z;

        /// <summary>
        /// Creates a new instance of Vector4.
        /// </summary>
        /// <param name="value">Value to initialize each component to.</param>
        public Vector4(float value)
        {
            this.X = this.Y = this.Z = this.W = value;
        }

        /// <summary>
        /// Initializes a new instance of Vector4.
        /// </summary>
        /// <param name="x">Initial value for the x-component of the vector.</param>
        /// <param name="y">Initial value for the y-component of the vector.</param>
        /// <param name="z">Initial value for the z-component of the vector.</param>
        /// <param name="w">Initial value for the w-component of the vector.</param>
        public Vector4(float x, float y, float z, float w)
        {
            this.X = x;
            this.Y = y;
            this.Z = z;
            this.W = w;
        }
    }
}
